﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NMF.Languages
{
    public abstract class Type
    {
        public abstract string Name { get; }

        public abstract void Visit(ITypeVisitor visitor);
        public abstract T Visit<T>(ITypeVisitor<T> visitor);
        public abstract T Visit<S, T>(ITypeVisitor<S, T> visitor, S parameter);
    }
}
